From: awilliam@xenbuild.aw Date: Wed, 31 May 2006 17:30:07 +0000 (-0600) Subject: [IA64] Add several missing is_running_on_xen(). X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16014 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=360cf93c53fdaa3480d80b5fd65791579a45c385;p=xen.git [IA64] Add several missing is_running_on_xen(). Signed-off-by Kevin Tian --- diff --git a/linux-2.6-xen-sparse/arch/ia64/kernel/iosapic.c b/linux-2.6-xen-sparse/arch/ia64/kernel/iosapic.c index be09b856e3..549aec5178 100644 --- a/linux-2.6-xen-sparse/arch/ia64/kernel/iosapic.c +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/iosapic.c @@ -670,7 +670,11 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery, iosapic_intr_info[vector].dmode = delivery; iosapic_intr_info[vector].trigger = trigger; -#ifndef CONFIG_XEN +#ifdef CONFIG_XEN + if (is_running_on_xen()) + return 0; +#endif + if (trigger == IOSAPIC_EDGE) irq_type = &irq_type_iosapic_edge; else @@ -683,7 +687,6 @@ register_intr (unsigned int gsi, int vector, unsigned char delivery, __FUNCTION__, vector, idesc->handler->typename, irq_type->typename); idesc->handler = irq_type; } -#endif return 0; } diff --git a/linux-2.6-xen-sparse/arch/ia64/kernel/irq_ia64.c b/linux-2.6-xen-sparse/arch/ia64/kernel/irq_ia64.c index a554503532..8aa7030b4d 100644 --- a/linux-2.6-xen-sparse/arch/ia64/kernel/irq_ia64.c +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/irq_ia64.c @@ -254,7 +254,8 @@ static int xen_slab_ready = 0; * it ends up to issue several memory accesses upon percpu data and * thus adds unnecessary traffic to other paths. */ -irqreturn_t handle_reschedule(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t +handle_reschedule(int irq, void *dev_id, struct pt_regs *regs) { return IRQ_HANDLED; @@ -328,7 +329,7 @@ xen_register_percpu_irq (unsigned int irq, struct irqaction *action, int save) } } -void +static void xen_bind_early_percpu_irq (void) { int i; @@ -398,19 +399,20 @@ init_IRQ (void) { #ifdef CONFIG_XEN /* Maybe put into platform_irq_init later */ - struct callback_register event = { - .type = CALLBACKTYPE_event, - .address = (unsigned long)&xen_event_callback, - }; - xen_init_IRQ(); - BUG_ON(HYPERVISOR_callback_op(CALLBACKOP_register, &event)); - late_time_init = xen_bind_early_percpu_irq; + if (is_running_on_xen()) { + struct callback_register event = { + .type = CALLBACKTYPE_event, + .address = (unsigned long)&xen_event_callback, + }; + xen_init_IRQ(); + BUG_ON(HYPERVISOR_callback_op(CALLBACKOP_register, &event)); + late_time_init = xen_bind_early_percpu_irq; #ifdef CONFIG_SMP - register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction); -#endif -#else /* CONFIG_XEN */ - register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL); + register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction); +#endif /* CONFIG_SMP */ + } #endif /* CONFIG_XEN */ + register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL); #ifdef CONFIG_SMP register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction); #endif diff --git a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c index 16ea104873..77325e2d1e 100644 --- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c +++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c @@ -925,7 +925,8 @@ cpu_init (void) platform_cpu_init(); #ifdef CONFIG_XEN /* Need to be moved into platform_cpu_init later */ - xen_smp_intr_init(); + if (is_running_on_xen()) + xen_smp_intr_init(); #endif pm_idle = default_idle; }